A storage system generally includes a host, a controller (or referred to as a storage controller, or a storage array controller), and a disk array. The controller is a bridge between the host and the disk array, and is configured to control communication and data exchange between the host and a disk.
Currently, all mainstream storage systems support data compression and decompression functions. For example, before data is written into a disk, the storage system generally compresses the data. For another example, after data is read from a disk, the storage system first decompresses the data, and then returns decompressed data to the host. Data compression and decompression can save disk space.
In the prior art, the data compression and decompression functions of the storage system are mainly implemented by the controller, and specifically, may be implemented by a processor in the controller. For example, for a write request (or referred to as write input/output (IO)), the controller first compresses the data, and then writes compressed data into a disk. For a read request (or referred to as a read TO), the controller first reads compressed data from a disk, then decompresses the read data, and returns decompressed data to the host. It can be learned from the foregoing process that, the controller needs to participate in an entire process of compression and decompression. However, data compression and decompression need to consume a large quantity of computing resources, causing more computational pressure to the controller.